home *** CD-ROM | disk | FTP | other *** search
- ⓪ MODULE LANDriver; (*$H+,Z+,S-,R-*)⓪ ⓪ IMPORT TOSIO;⓪ FROM InOut IMPORT Write, WriteString, ReadCard;⓪ ⓪ IMPORT SYSTEM;⓪ FROM SYSTEM IMPORT ASSEMBLER, ADR, WORD, BYTE, ADDRESS;⓪ ⓪ IMPORT ALAP;⓪ ⓪ IMPORT MOSGlobals, PrgCtrl, ModCtrl;⓪ FROM GEMDOS IMPORT Super;⓪ ⓪ ⓪ CONST DataLAP = $20; (* LAP-Type für Daten *)⓪ ⓪ VAR ch: CHAR;⓪$rxIdx, n, c: CARDINAL;⓪$lc: LONGCARD;⓪$i: INTEGER;⓪$ssp, li: LONGINT;⓪$redraw, quit, ok, b: BOOLEAN;⓪$myaddr: CARDINAL;⓪$sentDatas,sendTrials,rcvdDatas: LONGCARD;⓪$⓪$txFrame: ALAP.aTxFrame;⓪$packet: ALAP.ptrPacket;⓪$dstParam, srcParam: ALAP.anAddress;⓪$typeParam: ALAP.aLAPtype;⓪$dataParam: ALAP.aDataField;⓪$txStatus: ALAP.TransmitStatus;⓪$frameStatus: ALAP.FrameStatus;⓪$dataLength: INTEGER;⓪$⓪$bos: ARRAY [1..400] OF WORD; tos: WORD;⓪ ⓪ VAR trapV [$80]: PROC; oldv: PROC;⓪ ⓪ (*$L-*)⓪ ⓪ PROCEDURE trapHandler;⓪"BEGIN⓪$ASSEMBLER⓪(; cmd-code in D0⓪(MOVE.L A3,-(A7)⓪(MOVE.L A2,-(A7)⓪(MOVE.L A7,A2⓪(LEA tos,A7⓪(LEA bos,A3⓪(MOVE.L A2,-(A7)⓪(BREAK⓪(SUBQ #1,D2⓪(BMI getFrame⓪(BEQ sendFrame⓪(⓪(; Init⓪(MOVE.W myaddr,D0⓪(JSR ALAP.Init⓪(JSR ALAP.NewPacketBuffer⓪(JSR ALAP.NewPacketBuffer⓪(JSR ALAP.NewPacketBuffer⓪(MOVEQ #1,D0⓪(BRA exit⓪(⓪&getFrame:⓪(MOVE.L A0,-(A7) ;rette ^Ziel-Puffer⓪(MOVE.L #packet,(A3)+⓪(JSR ALAP.ReceiveFrame/⓪(MOVE.L (A7)+,A0⓪(CMPI #ALAP.lapDATAframe,D0⓪(BEQ dataOK⓪(MOVEQ #0,D0 ;error!⓪(BRA exit⓪&dataOK:⓪(MOVE.L packet,A1⓪(CMPI.B #DataLAP,ALAP.aPacket.frame.lapType(A1)⓪(; 4 Byte-Header schreiben⓪(MOVE.B D0,(A0)+⓪(CLR.B (A0)+⓪(MOVE.W ALAP.aPacket.length(A1),D0⓪(MOVE.W D0,(A0)+⓪(; Daten schreiben⓪(LEA ALAP.aPacket.frame.dataField(A1),A1⓪(ADDQ #1,D0⓪(LSR #1,D0⓪(BRA copys⓪©l:⓪(MOVE.W (A1)+,(A0)+⓪©s:⓪(DBRA D0,copyl⓪(MOVEQ #1,D0⓪(BRA exit⓪(⓪&sendFrame:⓪(LEA txFrame,A2⓪(MOVE.B 5(A0),ALAP.aTxFrame.ctrl.dstAddr(A2) ; Low-Byte der Ethernet-Adresse⓪(MOVE.W myaddr,D2⓪(MOVE.B D2,ALAP.aTxFrame.ctrl.srcAddr(A2)⓪(MOVE.B #DataLAP,ALAP.aTxFrame.ctrl.lapType(A2)⓪(LEA ALAP.aTxFrame.dataPtr1(A2),A1⓪(MOVE.L A0,(A1)+⓪(MOVE.W D0,(A1)+⓪(MOVE.L A1,(A1)+⓪(MOVE.W D1,(A1)+⓪(JSR ALAP.TransmitPacket⓪(⓪&exit:⓪(MOVE.L (A7)+,A7⓪(MOVE.L (A7)+,A2⓪(MOVE.L (A7)+,A3⓪(RTE⓪$END⓪"END trapHandler;⓪ ⓪ (*$L+*)⓪ ⓪ PROCEDURE removal;⓪"BEGIN⓪$ssp:= Super (0);⓪$trapV:= oldv;⓪$ssp:= Super (ssp);⓪"END removal;⓪ ⓪ BEGIN⓪"IF ModCtrl.FirstModuleStart () THEN⓪$WriteString ('Adresse? ');⓪$ReadCard (myaddr);⓪$ssp:= Super (0);⓪$oldv:= trapV;⓪$trapV:= trapHandler;⓪$ssp:= Super (ssp);⓪$ModCtrl.InstallModule (removal, MOSGlobals.MemArea{NIL,0})⓪"ELSE⓪$removal;⓪$ModCtrl.ReleaseModule⓪"END⓪ END LANDriver.⓪ ə
- (* $FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$00000A7B$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$FFF006F0$00000A5EÇ$000004BAT.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$00000507$000007F7$00000804$00000797$000007A3$FFF006F0$000008CC$FFF006F0$FFF006F0$000008C3$000008B9$000008C3$000004D6$000004BA$0000041D$0000050FÕüé*)
-